import axios from 'axios';
import { showNotify } from 'vant';
import { getToken, removToken } from './token';
import router from '@/router';

const request = axios.create({
    // 服务基本网址
    baseURL: 'http://124.220.178.79:8199',
    // 超时
    timeout: 15000,
})

// 请求拦截
request.interceptors.request.use((config) => {
    // 登录后给所有接口添加用于鉴权的header头
    config.headers.Authorization = `Bearer ${getToken()}`
    return config
}, error => Promise.reject(error))

// 响应拦截
request.interceptors.response.use(
    res => {
        if (res.data.code === 1) {
            // 成功
            return res.data
        } else {
            // 调用失败
            if (res.data.code === 0) {
                showNotify({ type: 'danger', message: res.data.message || '请求异常' })
                // ↓ 不合规 正常应该跟后端约定一个code
                if (res.data.message === '请登录') {
                    // 清除本地token
                    removToken()
                    router.replace('/login')
                }
            }
            if (res.data.code === 3) {
                showNotify({ type: 'danger', message: res.data.message || '登录信息有误，请确认后在登录' })
            }
            return Promise.reject("调用失败")
        }
    },
    error => Promise.reject(error)
)

export default request;